home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Belgian Amiga Club - ADF Collection
/
BS1 part 34.zip
/
BS1 part 34
/
GFA basic training.adf
/
Erweiterung
/
POLYNOM_NULLSTELLEN.LST
< prev
next >
Wrap
File List
|
1989-06-01
|
2KB
|
99 lines
'
' Nullstellen nach Bairstow
' Berechnung von reellen und komplexen Nullstellen eines beliebigen
' Polynoms
'
@anleitung
@werte
@rechnen
@lÖsung
END
'
'
' Zuerst die Eingabe und die entsprechende Dimensionierungen
PROCEDURE werte
za|=1
PRINT "Grad des Polynoms :";
INPUT " ",n|
DIM a(n|+1)
DIM b(n|+3)
DIM c(n|+3)
PRINT "Bitte nun die Koeffizienten:"
FOR i|=n|+1 DOWNTO 1
PRINT "X(";(i|-1);") =";
INPUT " ",a(i|)
NEXT i|
PRINT "Näherungswerte P,Q :"
INPUT " P = ",p
INPUT " Q = ",q
RETURN
PROCEDURE anleitung
CLS
PRINT TAB(20);"Nullstellen nach Bairstow"
PRINT
PRINT "DIESES PROGRAMM BERECHNET REELLE UND KOMPLEXE NULLSTELLEN"
PRINT
PRINT "EINES POLYNOMS ITERATIV NACH EINEM VON BAIRSTOW ANGEGEBENEN"
PRINT
PRINT "VERFAHREN. DIE ITERATION KANN UNTERBROCHEN WERDEN, DAS"
PRINT
PRINT "AUGENBLICKLICHE ERGEBNIS KÖNNEN SIE IM DIREKTMODUS DURCH"
PRINT "AUFRUFEN DER PROZEDUR 'LOESUNG' ERHALTEN."
RETURN
PROCEDURE rechnen
qu=q
pe=p
REPEAT
@horner
pe1=pe
pe=pe-(b(2)*c(3)-b(1)*c(4))/(c(3)*c(3)-c(4)*c(2))
qu=qu-(b(1)*c(3)-b(2)*c(2))/(c(3)*c(3)-c(4)*c(2))
UNTIL ABS(pe1-pe)<1.0E-08
RETURN
PROCEDURE lÖsung
wurzel=(pe*pe+4*qu)/4
IF wurzel<0
' Komplex konjugieren
wurzel=SQR(ABS(wurzel))
PRINT
PRINT "X(";za|;") =";pe/2;"+j*";wurzel
INC za|
PRINT
PRINT "X(";za|;") =";pe/2;"-j*";wurzel
ELSE
' reell Konjugieren
x=pe/2+SQR(wurzel)
PRINT
PRINT "X(";za|;") =";x
INC za|
x=pe/2-SQR(wurzel)
PRINT
PRINT "X(";za|;") =";x
INC za|
ENDIF
' Hier wird die Reduktion durchgeführt
SUB n|,2
WHILE n|<>0
FOR i|=1 TO n|+1
a(i|)=b(i|+2)
NEXT i|
IF n|=1
INC za|
PRINT
PRINT "X(";za|;")= ";-a(1)/a(2)
DEC n|
ELSE IF n|<>1
@rechnen
ENDIF
WEND
RETURN
PROCEDURE horner
' Wiederholtes doppelzeiliges Horner-Schema
FOR i|=n|+1 DOWNTO 1
b(i|)=a(i|)+pe*b(i|+1)+qu*b(i|+2)
NEXT i|
FOR i|=n|+1 DOWNTO 1
c(i|)=b(i|)+pe*c(i|+1)+qu*c(i|+2)
NEXT i|
RETURN